-
Notifications
You must be signed in to change notification settings - Fork 23
feat: prove (a copy of) Alive testcases with proper UB semantics #1260
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This is mostly just a copy of the existing LLVM parser, but we deliberately don't call the exixting functions, as we expect SLLVM to change over time
…ad of generic width
So we don't have to duplicate all the lemmas
|
Alive Statistics: 90 / 93 (3 failed) |
1 similar comment
|
Alive Statistics: 90 / 93 (3 failed) |
|
bitwuzla proved and leanSAT failed theorem 3 in file gexact_proof.lean |
These lemmas are no longer needed, since we have a procedure that canonicalizes if-poison expressions
|
Alive Statistics: 90 / 93 (3 failed) |
1 similar comment
|
Alive Statistics: 90 / 93 (3 failed) |
|
bitwuzla proved and leanSAT failed theorem 3 in file gexact_proof.lean |
This PR adds a parser and proof automation for the new SLLVM dialect, based on the existing LLVM parser&proof automation, and incorporating some new stuff I proposed in #1220.
I copied AliveStatements so I wouldn't interfere with the existing evaluation, and then semi-manually changed it to
All test cases that were proven before are now proven with proper UB semantics. Two rewrites that we sorried before turned out to just be plain false (even without UB), so I noted down the counter-example and ignored those test cases